//package cn.itsource.service.impl;
//
//        import cn.itsource.domain.Goods;
//        import cn.itsource.mapper.GoodsMapper;
//        import cn.itsource.service.IGoodsService;
//        import cn.itsource.utils.RedissionUtils;
//        import org.redisson.api.RLock;
//        import org.redisson.api.RedissonClient;
//        import org.springframework.beans.factory.annotation.Autowired;
//        import org.springframework.stereotype.Service;
//
//        import java.util.Map;
//
//@Service
//public class GoodsServiceImpl_redission implements IGoodsService {
//
//    @Autowired
//    private GoodsMapper goodsMapper;
//
//    @Override
//    public void updateNum(Map<String,Object> params) {
//        Long goodsId = (Long) params.get("id");
//        Integer num = (Integer) params.get("num");
//        //打印线程名称
//        System.out.println("线程：" + Thread.currentThread().getName()+"，enter！");
//        //得到Redisson客户端
//        RedissonClient redisson = RedissionUtils.getInstance().getRedisson("127.0.0.1", "6379");
//        //得到锁
//        RLock rLock = RedissionUtils.getInstance().getRLock(redisson, "goods" + goodsId);
//        try{
//            //加锁
//            rLock.lock();
//            //打印一下，看哪个线程得到了锁
//            System.out.println("线程" + Thread.currentThread().getName()+" 得到了锁");
//            //根据商品ID查询商品详情
//            Goods goods = goodsMapper.laodById(goodsId);
//            //打印商品详情
//            System.out.println("查询到的商品详情："+goods);
//            try {
//                Thread.sleep(1000);
//            } catch (InterruptedException e) {
//                e.printStackTrace();
//            }
//            System.out.println("当前库存："+goods.getCount()+"；需要购买数量："+num);
//            if (goods.getCount()>=num){
//                goodsMapper.updateNum(params);
//                System.out.println("线程" + Thread.currentThread().getName()+"，购买商品 "+num+" 个成功");
//            }
//            else{
//                System.out.println("库存不足，购买失败");
//            }
//        }catch (Exception e){
//            e.printStackTrace();
//        }
//        finally {
//            if (rLock != null) {
//                rLock.unlock();
//                System.out.println("线程" + Thread.currentThread().getName()+" 解锁！");
//            }
//            if (redisson != null) {
//                RedissionUtils.getInstance().closeRedisson(redisson);
//            }
//        }
//
//
//    }
//
//    @Override
//    public Goods getById(Long id) {
//        return goodsMapper.laodById(1L);
//    }
//}
